草庐IT

Java String.split 内存泄漏?

全部标签

php守护进程可能的内存泄漏

我已经用php编写了一个守护进程,并希望确保它不会泄漏内存,因为它将24/7全天候运行。即使是最简单的形式,守护进程的memory_get_peak_usage也会报告脚本在每个周期消耗更多内存。另一方面,memory_get_usage不会增长。问题是:我应该担心吗?我已经将守护进程剥离到最基本的部分,但这仍在发生。有什么想法吗?#!/usr/bin/php-q最后说明+结论:我最终编写了自己的守护进程包装器,而不是使用pear的system_daemon。不管我如何调整这个库,我都无法阻止它泄漏内存。希望这对其他人有帮助。最后说明+结论2:我的脚本已经投入生产一个多星期了,仍然没有

php - 使用 AJAX 会增加 PHP 的内存使用吗?

我认为这个问题的答案是否定的,但我没有更多的线索来解决我想弄清楚的问题。我最初只有一个脚本,它通过SQLCMD执行一些数据库查询。我现在决定通过AJAX启动此脚本并等待响应。但是我得到一个fatalerror:Fatalerror:Allowedmemorysizeof134217728bytesexhausted(triedtoallocate445bytes)inC:\process_txt.phponline109我在我的脚本中唯一改变的是这个ajax请求,老实说,没有别的,这就是我问这个问题的原因。我使用JQueryAJAX请求,但我认为我没有使用轮询。这是我使用的AJAXGE

php - preg_split 反斜杠

在我的PHP代码中,我在字符串中分配了带有命名空间的类名,例如:$my_class_name;//="Aaa\Bbb\Ccc";//thisisnotinsourcecode,justvardump我只需要中间名,在我的例子中是“Bbb”。我试着用这个:$result_array=preg_split("/\\/",$my_class_name);但是,它不起作用。我需要在正则表达式"/\\\/"中使用三重反斜杠才能使其正常工作。我的问题是:为什么我需要其中三个?我总是通过加倍来逃避反斜杠特殊功能。 最佳答案 你想在你的正则表达式中

PHP内存泄漏和 fork

我试图避免PHP中的内存泄漏。当我创建一个对象并在最后取消设置时,它仍在内存中。未设置的看起来像:$obj=NULL;unset($obj);这仍然无济于事。我的问题是当我fork进程并且对象将在子线程中创建和销毁时会发生什么?这会一样吗?或者有什么其他方法可以释放内存吗?这是导入脚本,它将消耗几千兆内存。 最佳答案 PHP5.3有一个垃圾收集器,可以收集循环引用。可能值得一试:gc_enable();classA{publicfunction__construct(){$this->data=str_repeat("A",1024

php - 在不影响内存限制的情况下导入巨大的 JSON 编码数组

我有一个包含两个JSON数组的文件;一个保存具有4个值的列名,另一个保存包含10,000多个记录值的数组。我正在使用Symfony和Propel;在使用json_decode时,它​​会抛出允许的内存大小耗尽。在我的php.ini中,我将最大大小指定为500MB,但文件执行了10秒并抛出了错误。数据文件包含{"columns_map":["Name","Age","Address","State"],"rows_map":{"1":["value1","value2","value3","value4"],"4":["value1","value2","value3","value4"

php - 这个 PHP 脚本会泄漏内存吗?

我有一个在后台运行一段时间的PHP脚本(通常是几分钟,但也可能长达一个小时左右)。它包含一个循环,我需要在其中创建一个对象。我目前每次都使用相同的名称:while(!$job_finished){$x=newMyClass();$x->doStuff();$x->doMoreStuff();unset($x);//morecodehere}由于我用相同的名称重复创建$x,垃圾回收会正确清理内存吗?或者我应该在$x上使用一个数组,例如$x[$i]=newMyClass(); 最佳答案 其实我不需要用数组。unset()命令会破坏对象,

PHP cURL,使用 CURLOPT_RETURNTRANSFER 时内存泄漏

下面的代码在一个循环中。每个循环将$URI更改为新地址。我的问题是每次通过都会占用越来越多的内存。$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$URI);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_HEADER,0);$res=curl_exec($ch);curl_close($ch);我终于发现,如果我注释掉CURLOPT_RETURNTRANSFER行,泄漏就会停止。我使用“CURLOPT_RETURNTRANSFER,true”,这样我就可以

PHP:生产服务器上的内存使用率非常高,而本地计算机上的内存使用率很低

我创建了一个PHP脚本,它从网站上抓取一些特定数据,查找相关信息并将其存储在数据库中。该脚本在本地机器上运行良好,但是当我使用cron作业在实时服务器上运行它时,它在执行10次数据库插入后停止说“fatalerror:/home/content/36/78632936/html/scripts/simple_html_dom.php中允许的67108864字节内存耗尽(试图分配35字节)809”我在本地使用get_memory_peak_usage()检查了相同的脚本,最大使用量约为8MB。我对为什么实时机器上的内存使用率高得惊人感到困惑。任何帮助将不胜感激。我的代码一瞥:DB_tab

类结构中的 PHP 内存泄漏

希望有人能帮我解决这个问题,有点难过。因此对图像和多边形进行了一些处理,但出现了奇怪的内存泄漏。所以我有一个名为canvas的包装器类,它只包含我的图像资源,另一个名为polygon的包装器类用于管理和操作另一个名为vertices的类,它只是x和y协调器数组的容器。非常直接。如果您使用此方法,即使在取消设置变量之后,图像资源的内存也不会返回,但如果您通常使用new关键字创建一个Polygon实例并取消设置它,那就没问题了。canvas类还有另一个称为destroy的方法:imagedestroy($this->canvas);所以使用这个:$img=newImage_Canvas($

PHP XML 内存泄漏?

我们的一个定期运行的脚本存在严重的内存泄漏,该脚本会迅速耗尽服务器上的可用内存。尽管进行了许多小时的研究和实验,但我什至无法对它产生任何影响。代码如下:echo'1:'.memory_get_usage()."\n";ini_set('memory_limit','1G');echo'2:'.memory_get_usage()."\n";$oXML=newDOMDocument();echo'3:'.memory_get_usage()."\n";$oXML->load('feed.xml');#556MBfileecho'4:'.memory_get_usage()."\n";$x